             package com.java.diagnostics.visualizer.factory;
             
             import com.java.diagnostics.visualizer.data.SourceData;
             import java.io.PrintStream;
             
             public abstract class SourceDataFactory
             {
               private static final String SOURCEDATA_FACTORY_IMPL = "com.java.diagnostics.visualizer.impl.factory.SourceDataFactoryImpl";
               private static SourceDataFactory factory = null;
               
               public static SourceDataFactory getFactory() {
                 try {
                   if (factory == null) {
                     factory = 
                       (SourceDataFactory)Class.forName("com.java.diagnostics.visualizer.impl.factory.SourceDataFactoryImpl").newInstance();
                   }
                   return factory;
                 }
                 catch (Exception e)
                 {
                   System.out.println("Could not instantiate the source data factory. Make sure the com.java.diagnostics.visualizer.impl plug-in is on the classpath. Exception is:" + e); }
                 return null;
               }
               
               public abstract SourceData createSourceData(String paramString);
             }


